Some user devices are capable of connecting to remote devices via global networks such as the Internet. Such devices have additional hardware and software to enable the connectivity, such as a network stack, a network adapter, a complex user interface, supporting logic, etc. However, this additional hardware and software results in increased cost and complexity for the user devices, especially when the connectivity is infrequently used (e.g., to occasionally obtain updates to the user devices). Further, even when the additional hardware and software is included with these user devices, connectivity to the global networks may not be available (e.g., due to lack of a nearby access point).
For such user devices and those user devices without the ability to connect to the global networks, a user may manually obtain and provide updates to the user devices. For example, the user may connect a computer or portable drive (e.g., a flash drive) to a printer to apply updates to software on the printer. Such an existing process, however, is manual, tedious, error prone, and time-consuming, especially when attempting to apply different updates to different user devices. These existing systems are not designed to efficiently obtain and provide updates to the user devices.